# coding=utf-8

# from selenium import  webdriver

# driver  = webdriver.Chrome()
# driver.maximize_window()
# driver.get("http://www.baidu.com")
# driver.find_element_by_xpath('//span[contains(text(),"张继科")]').click()

# map函数接收的是两个参数，一个是函数名，另外一个是序列，
# 其功能是将序列中的数值作为函数的参数依次传入到函数值中执行，然后再返回到列表中。
# 返回值是一个迭代器对象 eg:<map object at 0x00000214EEF40BA8>
from functools import reduce


def func(x):
    return x**2

res = map(func, [2,3,4,5])
print(res)
print(list(res))


def ac(x):
    if x % 2 == 0:
        return x
    else:
        return None
# filter函数也是接收一个函数和一个序列的高阶函数，其主要功能是过滤。
# 其返回值也是迭代器对象，<filter object at 0x000002042D25EA90>，其图示如下：
res = filter(ac,[2,34,5,8])
print(list(res))


# reduce函数也是一个参数为函数，另一个参数为可迭代对象 Iterable Object（eg: list列表）。，
# 其返回值为一个值而不是迭代器对象，故其常用与叠加、叠乘等，图示例如下：
def aa(x,y):
    return x+y
res = reduce(aa,[1,2,3,4,5,6])
print(res)


# Python内置的sorted()函数就可以对list进行排序：sorted 不会改变原来的列表，而是生成一个新的列表
a = [1,11,2,4,3]
aa = sorted(a)
print(a)
print(aa)
b = [1,11,22,4,3]

b.sort()
print(b)